package cn.nuofankj.myblog.dto.impl;

import cn.nuofankj.myblog.dto.DTOConvert;
import cn.nuofankj.myblog.entity.BlogConfig;
import lombok.Data;
import org.springframework.beans.BeanUtils;

/**
 * @author xifanxiaxue
 * @date 2020-12-20
 * @desc
 */
@Data
public class BlogConfigModifyDto {

    private String blogName;
    private String avatar;
    private String sign;
    private String wxpayQrcode;
    private String alipayQrcode;
    private String github;
    private String salt;
    private long articleCount;
    private long categoryCount;
    private long tagCount;
    private String viewPassword;
    private boolean settingPassword;

    public static BlogConfigModifyDto toDTO(BlogConfig blogConfig, long categoryCount, long tagCount, long articleCount) {
        BlogConfigModifyDto blogConfigDto = new BlogConfigModifyDtoConvert().toDTO(blogConfig);
        blogConfigDto.setArticleCount(articleCount);
        blogConfigDto.setCategoryCount(categoryCount);
        blogConfigDto.setTagCount(tagCount);
        return blogConfigDto;
    }

    public static BlogConfig toENT(BlogConfigModifyDto blogConfigModifyDto) {
        BlogConfig blogConfig = new BlogConfigModifyDtoConvert().toENT(blogConfigModifyDto);
        return blogConfig;
    }


    private static class BlogConfigModifyDtoConvert implements DTOConvert<BlogConfig, BlogConfigModifyDto> {

        @Override
        public BlogConfig toENT(BlogConfigModifyDto blogConfigDto) {

            BlogConfig blogConfig = new BlogConfig();
            BeanUtils.copyProperties(blogConfigDto, blogConfig);
            return blogConfig;
        }

        @Override
        public BlogConfigModifyDto toDTO(BlogConfig blogConfig) {

            BlogConfigModifyDto blogConfigDto = new BlogConfigModifyDto();
            BeanUtils.copyProperties(blogConfig, blogConfigDto);
            return blogConfigDto;
        }
    }

}
